package day14_io.demo01_文件和目录的copy;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

//复制一个目录下所有对象到另一个目录
public class demo02_copy {
    public static void main(String[] args) throws Exception{
        File file = new File("E:\\csw\\Demo\\csw1");//原本的路径
        File newfile = new File("E:\\csw\\Demo\\b");//复制的路径
        show(file,newfile);
    }
    public static void show(File file,File newfile) throws Exception {
        File[] files = file.listFiles();
        for (File file1 : files) {//原本路径的所有对象
            if (file1.isFile()){//判断对象为文件
                String s = newfile.getAbsolutePath() + "\\" + file1.getName();//要复制到的路径
//                System.out.println(s);
                FileInputStream fis = new FileInputStream(file1.getAbsolutePath());//输入的路径
                FileOutputStream fos = new FileOutputStream(s);//输出的路径
                byte[] b = new byte[1024];
                int i;
                while ((i=fis.read(b))!=-1){//读取输入路径的所有的值
                    fos.write(b,0,i);//录入到复制的路径
                }
                fis.close();
                fos.close();
            }else {//判断对象不为文件 为目录
                File file2 = new File(newfile,file1.getName());//在复制的路径下创建空的目录(把原本的路径下目录复制到复制目录下)
                file2.mkdirs();//创建由此抽象路径名命名的目录
                show(file1,file2);
            }
        }
    }
}